home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / iutil / utility.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-12-08  |  1.1 KB  |  67 lines

  1. # include    <ingres.h>
  2. # include    <access.h>
  3. # include    <sccs.h>
  4.  
  5. SCCSID(@(#)utility.c    8.2    12/8/85)
  6.  
  7. dumptid(tid)
  8. register TID    *tid;
  9. {
  10.     long    pageid;
  11.  
  12.     pluck_page(tid, &pageid);
  13.     printf("tid: %ld/%d\n", pageid, (tid->line_id & I1MASK));
  14.     return (0);
  15. }
  16.  
  17. /*
  18. **    struct for extracting page number from a tid
  19. **    and storing in a long
  20. **
  21. **    We want the line number (lpgx) to be in the low-order part of
  22. **    a long.  Since SUN's and VAXes have the order of the
  23. **    words reversed, this structure must be different.
  24. */
  25.  
  26. struct lpage
  27. {
  28. # ifdef VAX
  29.     char    lpg2, lpg1, lpg0, lpgx;
  30. # else
  31.     char    lpgx, lpg0, lpg1, lpg2;
  32. # endif
  33. };
  34. /*  PLUCK_PAGE
  35. **
  36. **    pluck_page extracts the three byte page_id from a TID
  37. **    and puts it into a long variable with proper allignment.
  38. */
  39.  
  40. pluck_page(t, var)
  41. register TID    *t;
  42. long        *var;
  43. {
  44.     register struct lpage    *v;
  45.  
  46.     v = (struct lpage *) var;
  47.     v->lpg0 = t->pg0;
  48.     v->lpg1 = t->pg1;
  49.     v->lpg2 = t->pg2;
  50.     v->lpgx = 0;
  51.     return (0);
  52. }
  53.  
  54. /*    stuff_page is the reverse of pluck_page    */
  55. stuff_page(t, var)
  56. register TID    *t;
  57. long        *var;
  58. {
  59.     register struct lpage    *v;
  60.  
  61.     v = (struct lpage *) var;
  62.     t->pg0 = v->lpg0;
  63.     t->pg1 = v->lpg1;
  64.     t->pg2 = v->lpg2;
  65.     return (0);
  66. }
  67.